LiveDeltaAddon · Signal Reference

Reading the Footprint

NinjaTrader 8 · DOM + Delta + Stack/Pull · Opening Range · SFP · API Levels · Ghost Profile · Custom column layout
Single-row imbalances
SellPriceBuy
5102
5101
5100
5099
5098
5097
Imbalance BuyImbalance Sell
At a given price level, one side dominates the other by a large factor. A buy imbalance means aggressive buyers absorbed everything — far more contracts traded at the ask than the bid. A sell imbalance is the opposite.
Triggers when: buy ≥ sell × ratio (or vice versa) and total ≥ min vol.
Default: ratio = 3×, min vol = 10 contracts.
Stacked imbalances
SellPriceBuy
5104
5103
STACKED
BUY
5102
5101
5100
5099
STACKED
SELL
5098
5097
Stacked BuyStacked Sell
When 3 or more consecutive rows all show the same directional imbalance, the block is promoted to a Stacked signal with a stronger highlight. Buyers or sellers dominated an entire price zone, not just one tick.
Stacked buys below price = absorbed support. Stacked sells above = supply wall. Classic institutional footprint.

Default trigger: 3+ consecutive rows.
Volume signals
SellPriceBuy
5103
5102
5101
5100
5099
5098
POC Point of Control
The price level with the highest total traded volume in the current session. Marked with a 5px gold left accent bar. Acts as a gravitational magnet — price tends to return to it and it serves as a key pivot for mean-reversion and breakout setups.
Large Order
A level where total volume spikes significantly above its neighbors — shown as a purple vol bar at full opacity. Flags institutional prints: large lots, stop sweeps, or icebergs being filled.
Triggers when: row volume ≥ neighbor average × multiplier (default 2×).
DOM columns — Bid & Ask depth
BIDSTACKPRICESTACKASK
85
210
5103
380
220
60
45
5102
140
300
400
5101 ◆
160
320
420
5100
40
340
460
5099
32
120
80
5098
48
Bid DOMAsk DOM
Live order book depth alongside each price row. The bar fills proportionally to the largest resting size visible in the window. Both sides scroll as one block with the price ladder — DOM position is always anchored to current price, not absolute scroll position.
Largest size highlight: The single row with the largest resting bid (or ask) in the visible window shows its number in white — instantly marking the dominant passive wall on each side.
Bid DOM (left of price) = passive buy orders waiting. Ask DOM (right) = passive sell orders waiting.
Widths normalized to the max visible on each side. Largest visible size shown in white text.
Stack / Pull / Iceberg columns
Stack Iceberg Pull Three distinct signals, one column per side
Each side (bid left of price, ask right) has a dedicated column showing three independent signals simultaneously. Detection uses executed volume — fully independent per side — to separate genuine cancellations from absorption and passive walls. All values are time-decayed (configurable 0.90–0.99 per DOM update) so stale signals fade naturally.
SignalBid colorAsk colorDetection logicMeaning
Stack Green Red Scan once from best bid/ask outward.
N consecutive levels ≥ StackMinVol.
Display = first level vol only.
Passive liquidity wall anchored at best bid/ask. Only the single row closest to price is marked. Value shown = first level size (what gets hit next).
Iceberg Teal Pink traded > 0 AND diff > 0
diff = newVol − (oldVol − traded)
iceberg = iceberg × decay + diff
Volume refreshed after execution — requires a trade to have printed first. Hidden size replenishing. Pure passive order additions (no trade) are excluded. Decays over time. Detected icebergs also show as a number directly in the price cell.
Pull Orange Purple traded == 0 AND newVol < oldVol
pulled = pulled × decay + (oldVol − newVol)
Reset to 0 when price trades through level.
Orders cancelled with NO execution — pure withdrawal of liquidity. Decays over time. Automatically cleared when price trades through the level.
Stack recomputes every frame — disappears instantly when wall breaks.
Iceberg and Pull use time-decayed accumulation — recent activity dominates, old signals fade.
Pull resets to zero when price trades through the level.
Bid and Ask executed volume are fully independent — mid-price trades split 50/50.
Thresholds: StackMinVol, StackMinLevels, PullMinVol, PullDecay (0.90–0.99).
Absorption
SellPriceBuy
5104
5103
5102
5101
5100
5099
Absorption
Price tried to move through a level but volume kept hitting from both sides without price going anywhere. The signature: very high total volume, tiny net delta. One side absorbed the other's aggression completely — price rejected.
Marked by a 4px teal right-edge accent bar. Stacks with all other signals — a stacked imbalance + absorption is a high-conviction reversal setup.
Formula: Total ÷ (|Delta| + 1) ≥ threshold
Default: min vol = 20, threshold = 5×.
Exhaustion
SellPriceBuy
5104
5103
5102
5101
5100
5099
Exhaustion
A level that previously showed a strong imbalance in one direction is now printing delta in the opposite direction. The initial aggression has run out of steam — the zone is being revisited and the conviction has flipped.
Rows 5102–5103 were previously a buy imbalance zone. Price returned and they are now showing clear sell delta — flagged with an orange 2px top stripe. Classic sign of failed auction or distribution after a buying cluster.
Triggers when: a level with a recorded imbalance direction is revisited and delta has flipped by ≥ 25% of total volume.
Default: min vol = 20 contracts.
Trapped traders
SellPriceBuy
5104
5103
5102
5101
5100
5099
Trapped Traders
Price broke through a stacked imbalance zone, trapping everyone who traded in the direction of the breakout — then quickly reversed back through the zone within the time window. Those traders are now offside and forced to exit, fueling the reversal move.
5100–5102 was a stacked sell zone. Price dropped below it, sellers went short — then price snapped back up through the zone. Sellers are trapped. The entire zone is highlighted with pink left + right bracket bars, persisting until the time window expires.
Triggers when: price fully crosses a stacked zone, then returns through it within the time window.
Default: time window = 30 seconds. Zone expires after 90 seconds.
Opening Range NEW
LVLSellPxBuy
5107
US H
5106
5105
5104
LON H
5103
5102
LON L
5101
US L
5100
5099
London OR US OR Lunch OR
Three independent session windows each track their own opening range high and low. When the session is active, the high and low are updated live. After the window closes, the levels are locked and persist through the day as reference markers.
Each OR boundary is marked with a colored 4px left accent bar on that price row and a short text tag in the Level column (LON H / LON L, US H / US L, LCH H / LCH L). Classic use: price above OR high = bullish breakout; below OR low = bearish breakdown; inside range = mean-reversion zone.
Each session window is independently configurable: start/end time (Eastern), color, enable/disable.
Defaults: London 02:00–03:00, US Open 09:30–10:30, Lunch 11:00–12:00. All times Eastern.
Swing Failure Pattern NEW
SellPriceBuy
5106
5105 SFP▼
5104
5103
5102 SFP▲
5101
SFP Bull ▲ SFP Bear ▼
Price wicks beyond a prior swing extreme (stop hunt), then closes back inside the prior range. Aggressive breakout traders are caught offside — the move reverses and runs their stops out, fueling a sharp counter-move.
Bull SFP: price wicked below a prior low and recovered — buyers absorbed all the sell stops below. Bear SFP: price wicked above a prior high and closed back below. The SFP row shows a teal bottom stripe (bull) or pink top stripe (bear) and a label in the price cell.
Marks the wick row when: a new session extreme is set AND current price has reversed back through the prior range boundary. Configurable display window.
View lock & scroll
⊙ Locked ⊙ Unlocked Price view control
Locked — green border (default)
Window always follows the live price. The view centers on the mid-market — the midpoint between best bid and best ask — so the spread is always visible around center. Scroll wheel and ▲▼ buttons disabled. Normal trading view, nothing drifts.
↕   click ⊙ to toggle
Unlocked — red border (reminder you're in scroll mode)
View anchors at the price the moment you clicked. The live price moves independently. Use the scroll wheel or the ▲ ▼ footer buttons (5 rows per click) to pan the frozen view. Click ⊙ again to snap back to locked mode instantly.
Useful for reviewing historical levels while the market is live.
Scroll is coalesced — rapid wheel events batch into a single repaint on the next 200ms timer tick for zero UI stutter.
Column layout & customization NEW
☰ Settings → Layout Reorder, resize, show/hide, and fill direction — all live
Every column is fully customizable. Changes apply instantly — no restart, no settings save trip needed for resize. The layout is remembered across sessions.
Column visibility
Level
Label column: shows Opening Range tags, SFP markers, and API level names at their exact price rows.
Delta
Net buy minus sell per row. Bar opacity scales with delta magnitude — stronger imbalances appear more saturated.
Vol Profile
Horizontal volume bars showing relative activity per level. Ghost profile overlays past sessions here.
Sell | Buy
Bid/ask trade volume bars — the core footprint columns. Flash buy/sell color briefly on each new print.
DOM
Live resting order book — both bid and ask sides. Largest visible size highlighted in white text.
Stack / Pull
Stack, Iceberg and Pull columns on both sides of price.
Trade Tape
Live time & sales tape on the right edge. Flashes blue on buy prints, red on sell prints.
Column ordering
Columns can be placed in any order on either side of the Price column. Use the Up/Down arrow buttons in Settings → Layout to reorder, or move a column from the left side to the right side (and vice versa).
BidDom
BidStack
◆ Price
AskStack
Delta
AskDom
Example: Delta moved to the right of AskDom — any arrangement is valid. Price is always the fixed anchor.
Bar fill direction (per column)
Each column has an independent fill direction override: Auto, Left, or Right.
ModeBehavior
AutoBar fills away from the Price column (outward). Bid-side columns fill left; ask-side columns fill right. DOM text sits on the inner edge next to Price for readability.
LeftBar always anchors on the left and grows rightward, regardless of which side of Price the column is on.
RightBar always anchors on the right and grows leftward (classic Delta/Vol style).
Drag-to-resize
Hover over any column divider in the header — the cursor changes to a resize arrow ↔. Drag to resize both adjacent columns simultaneously: dragging right grows the left column and shrinks the right column. Dragging the ladder/tape divider adjusts the tape column width and the adjacent ladder column together. Widths are saved automatically on mouse release.
No settings trip needed for resize — just drag the header divider. Works even when visual dividers are hidden (7px transparent hit region always present). Minimum column width: 20px (Level column can collapse to 0).
Signal visibility — Settings → Signal Indicators
Each signal overlay can be independently toggled. Disabling a signal hides its row background color and accent bar — the underlying data is still computed, it just doesn't render. Useful for reducing visual noise during fast markets.
Imbalance
Single-row buy/sell imbalance row highlight.
Stacked imbalance
Multi-row consecutive imbalance zone highlight.
POC accent
Gold 5px left bar on highest-volume price.
Large order
Purple vol bar when volume spikes vs neighbors.
Absorption
Teal 4px right bar — high vol, tiny delta.
Exhaustion
Orange 2px top stripe — delta flipped on imbalance zone.
Trapped traders
Pink left + right brackets — zone crossed then reversed.
Opening Range
Colored accent bars for each session OR high/low. Toggle each session independently.
SFP
Teal/pink stripe at the wick row — stop-hunt reversal.
API price levels NEW
API Level External reference prices displayed in the Level column
Price levels loaded from an external API endpoint appear as labeled markers in the Level column. Each level shows a short text tag at its exact price row. Use cases include institutional pivots, previous day high/low, VWAP anchors, earnings levels, or any custom reference prices your strategy requires.
Levels are refreshed automatically in the background every 5 minutes — no interruption to the live view. Markers persist until the next refresh cycle.
API endpoint configurable in Settings → Data. The Level column must be visible (Settings → Layout → Show Level) for labels to display.
Ghost volume profile — session history
Ghost 1 Ghost 2 Past session volume preserved as background reference
On every reset (auto or manual), the current session's volume profile is snapshot and preserved as a ghost overlay in the vol profile column. Up to two past sessions are kept — Ghost 1 (most recent, slightly brighter) and Ghost 2 (older, more faded).
BehaviourDetail
On reset Current session → Ghost 1. Previous Ghost 1 → Ghost 2. Previous Ghost 2 discarded. Both auto-reset and manual reset trigger a snapshot.
Price revisit When current session accumulates meaningful volume at a price tick (≥ StackMinVol contracts), the ghost at that exact tick is erased. Ghost fades tick-by-tick as the market revisits old levels.
No revisit If price never returns to a ghost level, the bar stays frozen indefinitely — exact historical footprint of where volume was in that session.
Rendering Ghost reuses the vol profile bar. Ghost 1 renders at 55% opacity, Ghost 2 at 40%. Only shows on rows where current session has no print. Toggled via Show Ghost Profile checkbox.
Reset timer Ghost interval matches your reset timer exactly — 5min reset = 5min ghost bars. Session reset = full session ghost.
Colors customizable via Ghost 1 color and Ghost 2 color pickers in settings.
Default: dark charcoal tones (#2A2D30 / #3D4145) so history reads clearly behind live data.
Quick reference
SignalMeaningDefault setting
Imbalance Buy Buy vol dominates sell at one level Ratio ×3, MinVol 10
Imbalance Sell Sell vol dominates buy at one level Ratio ×3, MinVol 10
Stacked Buy 3+ consecutive buy imbalance rows MinRows 3
Stacked Sell 3+ consecutive sell imbalance rows MinRows 3
Bid DOM Resting buy orders · largest size in white Width 80px
Ask DOM Resting sell orders · largest size in white Width 80px
Bid / Ask Stack Passive DOM wall — consecutive levels above threshold MinVol 50, MinLevels 2
Bid / Ask Iceberg Volume refreshed beyond resting after trades · number in price cell PullMinVol 20
Bid / Ask Pull Orders cancelled beyond what traded PullMinVol 20
POC Highest volume price · 5px gold left bar Auto
Large Order Volume spike vs neighbors · purple vol bar Mult ×2
Absorption High vol + tiny delta · teal right bar MinVol 20, Thr ×5
Exhaustion Imbalance zone revisited, delta flipped · orange top stripe MinVol 20
Trapped Traders Price crossed zone then reversed · pink brackets Window 30s
Opening Range Session OR hi/lo · colored left bar + Level label 3 sessions (ET)
SFP Bull Stop-hunt below prior low, price recovered · teal bottom stripe Configurable
SFP Bear Stop-hunt above prior high, price rejected · pink top stripe Configurable
API Levels External reference prices · labeled in Level column Refresh 5 min
Ghost Profile Past session vol — fades as current session revisits levels 2 sessions max
Lock / Scroll Toggle mid-market price-follow vs free scroll Default: locked